#ifndef STRUCTS_H
#define STRUCTS_H

#include "utypes.h"
#include "sprite.h"

typedef struct {
	int score;
	char name[11];
} Score;

typedef struct {
	int xFinal;
	int yFinal;
	int xInit;
	int yInit;
	int xSpeed;
	int ySpeed;
	Bool exist;
	Sprite* sprite;
} Stone;


typedef struct {
	int dx;
	int vSpeed;
	int blinktime;
	int temp_y;
	int score;
	Bool blinking;
	Bool jump;
	Bool jumpBegin;
	Bool shooting;
	Bool shootingBegin;
	Sprite* sprite;
	Sprite* sight;
	Stone stone;
	int lives;
} Hero;

typedef struct {
	int x,y;
	Bool alive;
	Sprite* sprite;
	int dumbl;
	int dumbr;
	int direction;
	Bool isMonster;
	int lives;
} Enemy;

typedef struct {
	int x,y,width,height;
} Rectangle;

typedef struct {
	Sprite* bg;
	Sprite* logo;
	Sprite* sequel;
	Sprite* text;
	Sprite* title;
	Sprite* mouse1;
	Sprite* mouse2;
} LevelIntro;


typedef struct {
	Enemy enemy;
	Sprite* bgCollision;
	Sprite* background;
	Rectangle finish;
	int songNumber;
	LevelIntro intro;
} Level;

typedef struct {
	Hero hero;
	Level level1;
	Level level2;
	Level level3;
	Sprite* loading;
	Sprite* loadingText;
	Sprite* gameover;
	Sprite* gameoverText;
	Sprite* win;
	Sprite* winText;
	Sprite* liveSprite;
	int gravity;
} Game;

#endif
